import request from '@/config/axios'

// 考试 VO
export interface VO {
  id: number // 主键
  examName: string // 考试名称
  paperId: number // 试卷id
  paperName: string // 试卷名称
  duration: number // 考试时长（分钟）
  totalScore: number // 总分
  passingScore: number // 及格分数
  startTime: Date // 开始时间
  endTime: Date // 结束时间
  endType: boolean // 结束设置 0 及格结束 1 不限次数 2 限制次数
  testNum: number // 考试次数设置
  scoreType: boolean // 成绩设置 0 最高分 1 最后一次
  version: number // 版本号
  singleChoiceNum: number // 单选题数量
  multipleChoiceNum: number // 多选题数量
  trueFalseNum: number // 判断题数量
  shortAnswerNum: number // 简答题数量
  essayNum: number // 问答题数量
  singleChoiceScore: number // 单选题分值
  multipleChoiceScore: number // 多选题分值
  multipleChoicePartialScore: number // 多选题漏选分值
  trueFalseScore: number // 判断题分值
  fillTotalScore: number // 填空题总分
  singleChoiceTotalScore: number // 单选题总分
  multipleChoiceTotalScore: number // 多选题总分
  calculateNum: number // 计算题数量
  fillNum: number // 填空题数量
  shortAnswerTotalScore: number // 简答题总分
  essayTotalScore: number // 问答题总分
  calculateTotalScore: number // 计算题总分
  easyNum: number // 简单题数
  commonNum: number // 一般题数
  mediumNum: number // 中等题数
  difficultNum: number // 困难题数
  extremelyDifficultNum: number // 极难题数
  easyTotalScore: number // 简单总分
  commonTotalScore: number // 一般总分
  mediumTotalScore: number // 中等总分
  difficultTotalScore: number // 困难总分
  extremelyDifficultTotalScore: number // 极难总分
  testType: boolean // 出题类型 0 无 1 难易 2 知识点
  paperType: boolean // 试卷类型 0 固定 1随机
  paperInfo: string // 试卷信息
}

// 考试 API
export const Api = {
  // 查询考试分页
  getPage: async (params: any) => {
    return await request.get({ url: `/exam/exam/page`, params })
  },

  // 查询考试详情
  get: async (id: number) => {
    return await request.get({ url: `/exam/exam/get?id=` + id })
  },

  // 新增考试
  create: async (data: VO) => {
    return await request.post({ url: `/exam/exam/create`, data })
  },

  // 修改考试
  update: async (data: VO) => {
    return await request.put({ url: `/exam/exam/update`, data })
  },

  // 删除考试
  delete: async (id: number) => {
    return await request.delete({ url: `/exam/exam/delete?id=` + id })
  },

  // 导出考试 Excel
  export: async (params) => {
    return await request.download({ url: `/exam/exam/export-excel`, params })
  },
}
